package com.shisfish.library.Inter;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.shisfish.core.Inter.IModelInter;
import com.shisfish.library.Model.BookLend;

public interface IBookLendInter extends IModelInter<BookLend> {

	public List<BookLend> selectOverdue();
	
	public List<BookLend> selectAllMessage(@Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
	public List<Map<String, Object>> selectAllMessage1(@Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
	/**
	 * @Author shisfish
	 * @Date 2015年12月31日 下午2:56:33
	 * @Descrition : 被借次数最多的书
	 * @return
	 */
	public List<Map<String, Object>> maxBorrowed();
	
	/**
	 * @Author shisfish
	 * @Date 2015年12月31日 下午4:13:22
	 * @Descrition : 该用户借书的数量
	 * @param borrower
	 * @return
	 */
	public int countByBorrower(@Param("borrower") String borrower);
	
	/**
	 * @Author shisfish
	 * @Date 2015年12月31日 下午4:13:42
	 * @Descrition : 该用户借的书（分页）
	 * @param borrower
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	public List<Map<String, Object>> selectByBorrower(@Param("borrower") String borrower, @Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
	public int countByDate(@Param("choDate") String choDate);
	
	public List<Map<String, Object>> selectByDate(@Param("choDate") String choDate, @Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
	public int countLendLogByDate(@Param("choDate") String choDate);
	
	public List<Map<String, Object>> lendLogByDate(@Param("choDate") String choDate, @Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
	public int countLendLogByDateBorrower(@Param("borrower") String borrower, @Param("choDate") String choDate);
	
	public List<Map<String, Object>> lendLogByDateBorrower(@Param("borrower") String borrower, @Param("choDate") String choDate, @Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
	/**
	 * @Author shisfish
	 * @Date 2016年1月14日 下午4:23:37
	 * @Descrition : 单本书的节约历史数量
	 * @param isbn
	 * @return
	 */
	public int bookLogCount(@Param("isbn") String isbn);
	
	/**
	 * @Author shisfish
	 * @Date 2016年1月14日 下午4:24:06
	 * @Descrition : 单本书的节约历史记录（分页）
	 * @param isbn
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	public List<Map<String, Object>> bookLogPage(@Param("isbn") String isbn, @Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
	/**
	 * @Author shisfish
	 * @Date 2016年1月14日 下午5:17:44
	 * @Descrition : 查询借书历史在 date 天内就要超期（或者已经过期）
	 * @param date
	 * @return
	 */
	public List<BookLend> selectRemind(@Param("date") int date);
	
}
